package com.xzc.jcip._3_.对象的共享.不变性;

/**
 * Holder对象中的状态n成为竞状条件
 */
public class Holder {

    private int n;

    public Holder(int n) {
        this.n = n;
    }

    public void assertSanity() {
        //第一次读n可能是个新值，第二次再读n可能已经失效了。。。
        //还有一种可能，Holder没有构造完成，这个方法就被访问n是一个Null值。。。
        //如果这里的n是不可变的-final，那么初始化就得到jvm的保证,n必须要强行初始化
        if (n != n)
            throw new AssertionError("This statement is false.");
    }
}
